/*	用户在屏幕上输入7个二进制数位,程序计算出第8个二进制数位.(规则要求,如果前7个数位中1的个数是奇数,则第8个数位是1,否则是0),最后把所有八个二进制数位按顺序打印在屏幕上.
 *
 */

#include<stdio.h>

int main() {
	//获得7位二进制数字,输入的方式是10进制的7位数,每位只包含1或0.
	printf("输入7个二进制数位:");
	int num = 0;
	scanf("%d", &num);

	//定义数组,从小到大表示二进制数位,从低到高.
	int arr[8] = {0};
	for (int i = 0; i <= 6; i++) {
		arr[i] = num % 10;
		num = num / 10;
	}

	//从低到高计算1的个数
	int is_odd = 0;
	for (int i = 0; i <= 6; i++) {
		if (arr[i] == 1) {
			is_odd++;
		}
	}
	
	//判断奇偶校验位是0还是1.并把值赋给数组最后一个,也就是二进制为的最高位.
	if (is_odd % 2 == 1) {
		arr[7] = 1;
	}
	else if (is_odd % 2 == 0) {
		arr[7] = 0;
	}

	//打印.从数组后往前打印.
	printf("二进制数是:");
	for (int i = 7; i >= 0; i--) {
		printf("%d", arr[i]);
	}
	printf("\n");
	return 0;
}
